home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / textfiles / 68060guide.txt < prev    next >
Text File  |  1994-11-23  |  5KB  |  128 lines

  1. ******************************************************************************
  2. *                                                                            *
  3. * 68060 Upgrade Software Guide                                                  *
  4. *                                                                            *
  5. * Copyright Ralph Schmidt                                                    *
  6. *                                                                            *
  7. * Phase5/Advanced Systems&Software                                           *
  8. *                                                                            *
  9. * Rev 1                                                                      *
  10. *                                                                            *
  11. *                                                                            *
  12. * EMail: laire@uni-paderborn.de                                              *
  13. *                                                                            *
  14. ******************************************************************************
  15.  
  16. 0) Advanced System & Software will sell the first 060 accelerator,
  17.    namely the Cyberstorm 060, rather soon and wants to achieve a smooth
  18.    integration into the Amiga.
  19.    Therefore we hope that software companys and pd programmers
  20.    will adopt their software to deal with the 68060.
  21.  
  22. 1) Inststructions supported by the 68040 but not by the 68060 directly that
  23.    can hurt performance:
  24.  
  25.  o divx.l (64bit divide)
  26.  o mulx.l (64bit multiply)
  27.  o fdbcc
  28.  o fscc
  29.  o movep
  30.  o There are other instructions that are not supported or have to
  31.    be emulated but these aren't relevant for user applications.
  32.  
  33. 2) Instructions supported by the 68060 in hardware that are emulated on
  34.    the 68040:
  35.  
  36.  o fint
  37.  o fintrz
  38.  
  39. 3) Emulation limitations
  40.  
  41. The emulation can't reliably emulate unsupported instructions
  42. that access the (ssp) in a way that it contradicts the basic
  43. definition of a stack. (ssp)=sp in supervisor mode.
  44. I don't think anybody is using such constructs in his software
  45. but I want to mention it to stop anybody from using these:
  46.  
  47. div{u,s}.l        -(ssp),dr:dq
  48. mul{u,s}.l        -(ssp),dr:dq
  49. f<op>.p            -(ssp),fpn
  50. f<op>.p            fpn,(ssp)+
  51. f<op>.{b,w,l,s,d,x}    -(ssp),fpn
  52. fs<cc>.b        -(ssp)
  53. fmovem.x        -(ssp),dn
  54. fmovem.x        dn,(ssp)+
  55. f<op>.x            fpn,(ssp)+    ;Underflow,SNAN exception
  56. f<op>.{b,w,l}        fpn,(ssp)+    ;Enabled OPERR
  57.  
  58.  
  59.  
  60. 4) Other software problems.
  61.  
  62.   o Don't use Aztec C.
  63.     It is not compatible with the 68060.
  64.     Popular applications with this problem: CED 2.02,CED 3.5,Mand2000D
  65.     *I fixed this by patching Supervisor()*,
  66.     so don't worry about your programs but
  67.     don't use it in future software if possible.
  68.  
  69.     Here's the bad Code:
  70.  
  71.     btst.b    #4,$129(a6)        ;check for 68881 flag in AttnFlags
  72.     beq    1$            ;skip if not
  73.     lea    2$,a5
  74.     jsr    -30(a6)            ;do it in supervisor mode
  75.     bra    1$
  76.     2$
  77.     clr.l    -(sp)
  78.     frestore (sp)+            ;reset the ffp stuff
  79.     ;The 68060 FRestore stackframe is 12 bytes long but it only created
  80.     ;a NULL frame with the size of 4 Bytes so the Stack is wrong afterwards.
  81.     ;RTE->jump into unknown regions...crash
  82.     rte                ;and return
  83.  
  84. 5) New Stackframe format
  85.  
  86.    These informations are only interesting for Debugger programmers
  87.    and kernel hackers.
  88.  
  89.    o 3-Byte in the 1st Longword = 0 then NULL Stackframe.
  90.      xxxx00xx    ;1st Longword of the FPU stackframe
  91.      xxxxxxxx    ;2nd Longword of the FPU stackframe
  92.      xxxxxxxx    ;3rd Longword of the FPU stackframe
  93.      xxxxxxxx    ;PC
  94.      xxxx    ;SR
  95.      d0-a6    ;Registers
  96.  
  97.  
  98.    o 3-Byte in the 1st Longword !=0 then BUSY Stackframe.
  99.      ffffffff    ;Busy Fake Longword
  100.      xxxxxxxx    ;FPCR
  101.      xxxxxxxx    ;FPSR
  102.      xxxxxxxx    ;FPIAR
  103.      fp0-fp7    ;FPU Registers
  104.      xxxxxxxx    ;1st Longword of the FPU stackframe
  105.      xxxxxxxx    ;2nd Longword of the FPU stackframe
  106.      xxxxxxxx    ;3rd Longword of the FPU stackframe
  107.      xxxxxxxx    ;PC
  108.      xxxx    ;SR
  109.      d0-a6    ;Registers   
  110.  
  111.  
  112. 6) MMU Table differences
  113.  
  114.    The 68040 and 68060 mmu tables are almost the same but there is
  115.    an important difference. For the 68060 the MMU-Tables have to
  116.    be placed into non-cached ram!!!!!!!
  117.    So if you manipulate the mmu-table you have to mark the pages
  118.    with your added tables as non-cacheable.
  119.    Another difference is that the Cyberstorm software uses the
  120.    area $ffff8000-$ffffffff for itself.
  121.    You are NOT allowed to change the mmu-table that this area
  122.    is touched in any way. This can lead to serious crashes.
  123.  
  124.  
  125. 7) Barfly 1.09 is the first Assembler/Debugger that supports the
  126.    68060. It can be found on aminet:dev/asm/barfly1_09.lha
  127.  
  128.